\frame
{
  \frametitle{Dataflow analysis}
{\small
  Use intraprocedural dataflow analysis to infer (probable) facts
  within methods.  Examples:
  \B
  \item Find dereferences of null values
  \item Find field accesses not consistently protected by a lock
  \E
  Typical implementation strategy:
  \B
  \item Detector class extends {\tt CFGDetector}
  \item For visited application classes/methods,
  request dataflow analysis results from AnalysisCache
  \item Inspect code for suspicious situations (e.g., dereference
  of possibly-null value)
  \E
}
}
